package com.hskn.hss.module.employeeTrack.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.hskn.hss.utils.Tools;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.Objects;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class EmployeeTrack implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @TableId(value = "id", type = IdType.ASSIGN_UUID)
    private String id;
    /**
     *设备编号
     */
    private String eqpNum;
    /**
     *发生月份
     */
    private String workMonth;
    /**
     *工作日期
     */
    private Date workDay;
    /**
     *工作日期String
     */
    @TableField(exist = false)
    private String workDayString;
    /**
     *人员id
     */
    private String employeeId;
    /**
     *网格id
     */
    private String gridId;
    /**
     *班次id
     */
    private String shiftId;
//    /**
//     *班次开始时间
//     */
//    @TableField(exist = false)
//    private Date shiftStartDate;
//    /**
//     *班次结束时间
//     */
//    @TableField(exist = false)
//    private Date shiftEndDate;
    /**
     *经度
     */
    private String lng;
    /**
     *纬度
     */
    private String lat;
    /**
     *位置
     */
    private String location;
    /**
     *编译的坐标（中文）
     */
    private String address;
    /**
     *时间
     */
    private Date timestamp;
    /**
     *人员id和分钟
     */
    @TableField(exist = false)
    private String employeeIdAndTime;
    /**
     *信息描述（报警，违规）
     */
    private String message;
    /**
     *创建时间
     */
    private Date createTime;
    /**
     *是否报警：0否  1是
     */
    private Integer isDanger;
    /**
     *是否违规：0否  1是
     */
    private Integer isWarning;
    /**
     *违规离岗秒数
     */
    private Integer warningLeave;
    /**
     *违规停留秒数
     */
    private Integer warningStay;
    /**
     *低电报警秒数
     */
    private Integer dangerLowElectric;
    /**
     *违规聚众秒数
     */
    private Integer warningTogether;
    /**
     *违规聚众的人员ID
     */
    private String warningTogetherIds;
    /**
     *速度
     */
    private Integer speed;
    /**
     *移动秒数
     */
    private Integer moveSecond;
    /**
     *设备类型：0缺省；1工牌；2对讲机；3校徽
     */
    private Integer eqpType;
    /**
     * 是否网格内：0否 1是
     */
    private Integer isInGrid;
    /**
     * 离上一个坐标点距离
     */
    private Double distanceBetween;
    /**
     * message字段对应的时间取值字段
     */
    private String lastMessageCheck;

    /**
     *是否停留(0正常 1停留)
     */
    private Integer isStop;
    /**
     *是否离岗(0正常 1离岗)
     */
    private Integer isDemobiliz;
    /**
     *是否聚众(0正常 1聚众)
     */
    private Integer isGather;
    /**
     *是否离线(0正常 1离线)
     */
    private Integer isOffline;
    /**
     *是否应急(0正常 1应急)
     */
    private Integer isEmergency;

    @TableField(exist = false)
    private Integer index;
    @TableField(exist = false)
    private Integer isWorkIng; //1 是 0 否

    public String getWorkDayString() {
        if (Objects.nonNull(workDay)) {
            return Tools.getYearMonthDayString(workDay);
        }
        return "";
    }
}
